/**
 */
package org.cmoine.perspectiveshare.model;

import org.eclipse.emf.ecore.EObject;

import org.eclipse.emf.ecore.util.FeatureMap;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Info Type</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link org.cmoine.perspectiveshare.model.InfoType#getMixed <em>Mixed</em>}</li>
 *   <li>{@link org.cmoine.perspectiveshare.model.InfoType#getFolder <em>Folder</em>}</li>
 *   <li>{@link org.cmoine.perspectiveshare.model.InfoType#getFolder1 <em>Folder1</em>}</li>
 *   <li>{@link org.cmoine.perspectiveshare.model.InfoType#getPart <em>Part</em>}</li>
 *   <li>{@link org.cmoine.perspectiveshare.model.InfoType#getRatio <em>Ratio</em>}</li>
 *   <li>{@link org.cmoine.perspectiveshare.model.InfoType#getRatioLeft <em>Ratio Left</em>}</li>
 *   <li>{@link org.cmoine.perspectiveshare.model.InfoType#getRatioRight <em>Ratio Right</em>}</li>
 *   <li>{@link org.cmoine.perspectiveshare.model.InfoType#getRelationship <em>Relationship</em>}</li>
 *   <li>{@link org.cmoine.perspectiveshare.model.InfoType#getRelative <em>Relative</em>}</li>
 * </ul>
 * </p>
 *
 * @see org.cmoine.perspectiveshare.model.PerspectivesPackage#getInfoType()
 * @model extendedMetaData="name='info_._type' kind='mixed'"
 * @generated
 */
public interface InfoType extends EObject {
    /**
     * Returns the value of the '<em><b>Mixed</b></em>' attribute list.
     * The list contents are of type {@link org.eclipse.emf.ecore.util.FeatureMap.Entry}.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Mixed</em>' attribute list isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Mixed</em>' attribute list.
     * @see org.cmoine.perspectiveshare.model.PerspectivesPackage#getInfoType_Mixed()
     * @model unique="false" dataType="org.eclipse.emf.ecore.EFeatureMapEntry" many="true"
     *        extendedMetaData="kind='elementWildcard' name=':mixed'"
     * @generated
     */
    FeatureMap getMixed();

    /**
     * Returns the value of the '<em><b>Folder</b></em>' containment reference.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Folder</em>' containment reference isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Folder</em>' containment reference.
     * @see #setFolder(FolderType)
     * @see org.cmoine.perspectiveshare.model.PerspectivesPackage#getInfoType_Folder()
     * @model containment="true" transient="true" volatile="true" derived="true"
     *        extendedMetaData="kind='element' name='folder' namespace='##targetNamespace'"
     * @generated
     */
    FolderType getFolder();

    /**
     * Sets the value of the '{@link org.cmoine.perspectiveshare.model.InfoType#getFolder <em>Folder</em>}' containment reference.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param value the new value of the '<em>Folder</em>' containment reference.
     * @see #getFolder()
     * @generated
     */
    void setFolder(FolderType value);

    /**
     * Returns the value of the '<em><b>Folder1</b></em>' attribute.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Folder1</em>' attribute isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Folder1</em>' attribute.
     * @see #setFolder1(String)
     * @see org.cmoine.perspectiveshare.model.PerspectivesPackage#getInfoType_Folder1()
     * @model dataType="org.eclipse.emf.ecore.xml.type.String"
     *        extendedMetaData="kind='attribute' name='folder' namespace='##targetNamespace'"
     * @generated
     */
    String getFolder1();

    /**
     * Sets the value of the '{@link org.cmoine.perspectiveshare.model.InfoType#getFolder1 <em>Folder1</em>}' attribute.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param value the new value of the '<em>Folder1</em>' attribute.
     * @see #getFolder1()
     * @generated
     */
    void setFolder1(String value);

    /**
     * Returns the value of the '<em><b>Part</b></em>' attribute.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Part</em>' attribute isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Part</em>' attribute.
     * @see #setPart(String)
     * @see org.cmoine.perspectiveshare.model.PerspectivesPackage#getInfoType_Part()
     * @model dataType="org.eclipse.emf.ecore.xml.type.String"
     *        extendedMetaData="kind='attribute' name='part' namespace='##targetNamespace'"
     * @generated
     */
    String getPart();

    /**
     * Sets the value of the '{@link org.cmoine.perspectiveshare.model.InfoType#getPart <em>Part</em>}' attribute.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param value the new value of the '<em>Part</em>' attribute.
     * @see #getPart()
     * @generated
     */
    void setPart(String value);

    /**
     * Returns the value of the '<em><b>Ratio</b></em>' attribute.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Ratio</em>' attribute isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Ratio</em>' attribute.
     * @see #isSetRatio()
     * @see #unsetRatio()
     * @see #setRatio(float)
     * @see org.cmoine.perspectiveshare.model.PerspectivesPackage#getInfoType_Ratio()
     * @model unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.Float"
     *        extendedMetaData="kind='attribute' name='ratio' namespace='##targetNamespace'"
     * @generated
     */
    float getRatio();

    /**
     * Sets the value of the '{@link org.cmoine.perspectiveshare.model.InfoType#getRatio <em>Ratio</em>}' attribute.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param value the new value of the '<em>Ratio</em>' attribute.
     * @see #isSetRatio()
     * @see #unsetRatio()
     * @see #getRatio()
     * @generated
     */
    void setRatio(float value);

    /**
     * Unsets the value of the '{@link org.cmoine.perspectiveshare.model.InfoType#getRatio <em>Ratio</em>}' attribute.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see #isSetRatio()
     * @see #getRatio()
     * @see #setRatio(float)
     * @generated
     */
    void unsetRatio();

    /**
     * Returns whether the value of the '{@link org.cmoine.perspectiveshare.model.InfoType#getRatio <em>Ratio</em>}' attribute is set.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @return whether the value of the '<em>Ratio</em>' attribute is set.
     * @see #unsetRatio()
     * @see #getRatio()
     * @see #setRatio(float)
     * @generated
     */
    boolean isSetRatio();

    /**
     * Returns the value of the '<em><b>Ratio Left</b></em>' attribute.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Ratio Left</em>' attribute isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Ratio Left</em>' attribute.
     * @see #isSetRatioLeft()
     * @see #unsetRatioLeft()
     * @see #setRatioLeft(short)
     * @see org.cmoine.perspectiveshare.model.PerspectivesPackage#getInfoType_RatioLeft()
     * @model unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.Short"
     *        extendedMetaData="kind='attribute' name='ratioLeft' namespace='##targetNamespace'"
     * @generated
     */
    short getRatioLeft();

    /**
     * Sets the value of the '{@link org.cmoine.perspectiveshare.model.InfoType#getRatioLeft <em>Ratio Left</em>}' attribute.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param value the new value of the '<em>Ratio Left</em>' attribute.
     * @see #isSetRatioLeft()
     * @see #unsetRatioLeft()
     * @see #getRatioLeft()
     * @generated
     */
    void setRatioLeft(short value);

    /**
     * Unsets the value of the '{@link org.cmoine.perspectiveshare.model.InfoType#getRatioLeft <em>Ratio Left</em>}' attribute.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see #isSetRatioLeft()
     * @see #getRatioLeft()
     * @see #setRatioLeft(short)
     * @generated
     */
    void unsetRatioLeft();

    /**
     * Returns whether the value of the '{@link org.cmoine.perspectiveshare.model.InfoType#getRatioLeft <em>Ratio Left</em>}' attribute is set.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @return whether the value of the '<em>Ratio Left</em>' attribute is set.
     * @see #unsetRatioLeft()
     * @see #getRatioLeft()
     * @see #setRatioLeft(short)
     * @generated
     */
    boolean isSetRatioLeft();

    /**
     * Returns the value of the '<em><b>Ratio Right</b></em>' attribute.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Ratio Right</em>' attribute isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Ratio Right</em>' attribute.
     * @see #isSetRatioRight()
     * @see #unsetRatioRight()
     * @see #setRatioRight(short)
     * @see org.cmoine.perspectiveshare.model.PerspectivesPackage#getInfoType_RatioRight()
     * @model unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.Short"
     *        extendedMetaData="kind='attribute' name='ratioRight' namespace='##targetNamespace'"
     * @generated
     */
    short getRatioRight();

    /**
     * Sets the value of the '{@link org.cmoine.perspectiveshare.model.InfoType#getRatioRight <em>Ratio Right</em>}' attribute.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param value the new value of the '<em>Ratio Right</em>' attribute.
     * @see #isSetRatioRight()
     * @see #unsetRatioRight()
     * @see #getRatioRight()
     * @generated
     */
    void setRatioRight(short value);

    /**
     * Unsets the value of the '{@link org.cmoine.perspectiveshare.model.InfoType#getRatioRight <em>Ratio Right</em>}' attribute.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see #isSetRatioRight()
     * @see #getRatioRight()
     * @see #setRatioRight(short)
     * @generated
     */
    void unsetRatioRight();

    /**
     * Returns whether the value of the '{@link org.cmoine.perspectiveshare.model.InfoType#getRatioRight <em>Ratio Right</em>}' attribute is set.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @return whether the value of the '<em>Ratio Right</em>' attribute is set.
     * @see #unsetRatioRight()
     * @see #getRatioRight()
     * @see #setRatioRight(short)
     * @generated
     */
    boolean isSetRatioRight();

    /**
     * Returns the value of the '<em><b>Relationship</b></em>' attribute.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Relationship</em>' attribute isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Relationship</em>' attribute.
     * @see #isSetRelationship()
     * @see #unsetRelationship()
     * @see #setRelationship(byte)
     * @see org.cmoine.perspectiveshare.model.PerspectivesPackage#getInfoType_Relationship()
     * @model unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.Byte"
     *        extendedMetaData="kind='attribute' name='relationship' namespace='##targetNamespace'"
     * @generated
     */
    byte getRelationship();

    /**
     * Sets the value of the '{@link org.cmoine.perspectiveshare.model.InfoType#getRelationship <em>Relationship</em>}' attribute.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param value the new value of the '<em>Relationship</em>' attribute.
     * @see #isSetRelationship()
     * @see #unsetRelationship()
     * @see #getRelationship()
     * @generated
     */
    void setRelationship(byte value);

    /**
     * Unsets the value of the '{@link org.cmoine.perspectiveshare.model.InfoType#getRelationship <em>Relationship</em>}' attribute.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see #isSetRelationship()
     * @see #getRelationship()
     * @see #setRelationship(byte)
     * @generated
     */
    void unsetRelationship();

    /**
     * Returns whether the value of the '{@link org.cmoine.perspectiveshare.model.InfoType#getRelationship <em>Relationship</em>}' attribute is set.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @return whether the value of the '<em>Relationship</em>' attribute is set.
     * @see #unsetRelationship()
     * @see #getRelationship()
     * @see #setRelationship(byte)
     * @generated
     */
    boolean isSetRelationship();

    /**
     * Returns the value of the '<em><b>Relative</b></em>' attribute.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Relative</em>' attribute isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Relative</em>' attribute.
     * @see #setRelative(String)
     * @see org.cmoine.perspectiveshare.model.PerspectivesPackage#getInfoType_Relative()
     * @model dataType="org.eclipse.emf.ecore.xml.type.String"
     *        extendedMetaData="kind='attribute' name='relative' namespace='##targetNamespace'"
     * @generated
     */
    String getRelative();

    /**
     * Sets the value of the '{@link org.cmoine.perspectiveshare.model.InfoType#getRelative <em>Relative</em>}' attribute.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param value the new value of the '<em>Relative</em>' attribute.
     * @see #getRelative()
     * @generated
     */
    void setRelative(String value);

} // InfoType
